#pragma once

#include <string>
#include <vector>
#include "common.h"
#include "Global.h"
#include "ImageEx.h"

using	namespace	std;

class CParameter
{
	public:
		CParameter(void);
		~CParameter(void);

	public:
		double				epsilon;
		vector<Color>		Colors;

	// Drawing
	public:
		int					PointRadiusForDrawing;

	// Train Model
	public:
		int					Amount_TrainingIteration;
		int					Amount_InstanceForUpdating;

	// Model
	public:
		int					LeafBinCount;
		int					RegionBinCount;
		int					FilterCount;

	// NMS
	public:
		double				m_fMaxOriDiff_NMS;
		double				m_fMaxScale_NMS;
		double				m_fMinScale_NMS;
		double				m_fLeafArea_NMS;
		double				m_fLeafOriDiff_NMS;
		vector<double>		m_NearArea_NMS;
		vector<int>			m_MaxInstCount;

	// FillIN
	public:
		double				m_fMaxOriDiff_FillIn;
		double				m_fMaxScale_FillIn;
		double				m_fMinScale_FillIn;
		vector<double>		m_NearArea_FillIn;

	// Print Result
	public:
		string				strBottomUpCurveResult;
		string				strTopDownCurveResult;
		string				strParseGroundPathName;

	public:
		vector<double>		m_Recalls;

	public:
		void	SetColors();
};

extern	CParameter g_Parameter;